1
2
Próximo
Não.
O JSON contém apenas dados e, se você incluir um comentário, ele também será.
Você pode ter um elemento de dados designado chamado "_comment" (ou algo) que deve ser ignorado por aplicativos que usam os dados JSON.
Provavelmente seria melhor você ter o comentário nos processos que geram / recebem o JSON, pois eles devem saber com antecedência quais serão os dados JSON, ou pelo menos a estrutura deles.
Mas se você decidiu:
{
"_comment": "o texto do comentário vai aqui ...",
"glossário": {
"título": "glossário de exemplo",
"GlossDiv": {
"título": "S",
"GlossList": {
"GlossEntry": {
"ID": "SGML",
"SortAs": "SGML",
"GlossTerm": "Linguagem de marcação generalizada padrão",
"Acrônimo": "SGML",
"Abrev": "ISO 8879: 1986",
"GlossDef": {
"para": "Uma linguagem de meta-marcação, usada para criar linguagens de marcação, como DocBook.",
"GlossSeeAlso": ["GML", "XML"]
},
"GlossSee": "marcação"
}
}
}
}
}
|
Não, comentários do formulário //… ou / *… * / não são permitidos em JSON. Esta resposta é baseada em:
https://www.json.org
RFC 4627:
O tipo de mídia application / json para JavaScript Object Notation (JSON)
RFC 8259 O formato de intercâmbio de dados JavaScript Object Notation (JSON) (substitui os RFCs 4627, 7158, 7159)
|
Inclua comentários, se desejar; retire-os com um minificador antes de analisar ou transmitir.
Acabei de lançar JSON.minify () que remove comentários e espaços em branco de um bloco de JSON e o torna um JSON válido que pode ser analisado. Então, você pode usá-lo como:
JSON.parse (JSON.minify (my_str));
Quando o lancei, tive uma grande reação de pessoas discordando até mesmo da ideia dele, então decidi que escreveria uma postagem de blog abrangente sobre por que os comentários fazem sentido em JSON. Inclui este comentário notável do criador do JSON:
Suponha que você esteja usando JSON para manter os arquivos de configuração que gostaria de anotar. Vá em frente e insira todos os comentários que desejar. Em seguida, canalize-o pelo JSMin antes de entregá-lo ao analisador JSON. - Douglas Crockford, 2012
Esperamos que isso seja útil para aqueles que discordam do motivo pelo qual JSON.minify () pode ser útil.
|
Os comentários foram removidos do JSON por design.
Removi os comentários do JSON porque vi que as pessoas os estavam usando para manter as diretivas de análise, uma prática que teria destruído a interoperabilidade. Sei que a falta de comentários deixa algumas pessoas tristes, mas não deveria.
Suponha que você esteja usando JSON para manter os arquivos de configuração que gostaria de anotar. Vá em frente e insira todos os comentários que desejar. Em seguida, canalize-o por meio de JSMin antes de entregá-lo ao analisador JSON.
Fonte: declaração pública de Douglas Crockford no G +
|
JSON não suporta comentários. Ele também nunca foi planejado para ser usado para arquivos de configuração onde comentários seriam necessários.
Hjson é um formato de arquivo de configuração para humanos. Sintaxe relaxada, menos erros, mais comentários.
Consulte hjson.github.io para bibliotecas JavaScript, Java, Python, PHP, Rust, Go, Ruby, C ++ e C #.
|
ISENÇÃO DE RESPONSABILIDADE: SUA GARANTIA É ANULADA
Como foi apontado, este hack aproveita a implementação da especificação. Nem todos os analisadores JSON entenderão esse tipo de JSON. Analisadores de streaming em particular irão bloquear
É uma curiosidade interessante, mas você realmente não deveria usá-lo para nada. Abaixo está a resposta original.
Eu encontrei um pequeno hack que permite colocar comentários em um arquivo JSON que não afetará a análise, ou alterará os dados sendo representados de nenhuma forma.
Parece que, ao declarar um literal de objeto, você pode especificar dois valores com a mesma chave, e o último tem precedência. Acredite ou não, os analisadores JSON funcionam da mesma maneira. Portanto, podemos usar isso para criar comentários no JSON de origem que não estarão presentes em uma representação de objeto analisado.
({a: 1, a: 2});
// => Objeto {a: 2}
Object.keys (JSON.parse ('{"a": 1, "a": 2}')). Length;
// => 1
Se aplicarmos essa técnica, seu arquivo JSON comentado pode ter a seguinte aparência:
{
"api_host": "O nome do host do seu servidor API. Você também pode especificar a porta.",
"api_host": "hodorhodor.com",
"retry_interval": "O intervalo em segundos entre as tentativas de chamadas de API com falha",
"retry_interval": 10,
"auth_token": "O token de autenticação. Está disponível no painel do desenvolvedor em 'Configurações'",
"auth_token": "5ad0eb93697215bc0d48a7b69aa6fb8b",
"favorite_numbers": "Uma matriz contendo meus números favoritos de todos os tempos",
"favorite_numbers": [19, 13, 53]
}
O código acima é um JSON válido. Se você analisá-lo, obterá um objeto como este:
{
"api_host": "hodorhodor.com",
"retry_interval": 10,
"auth_token": "5ad0eb93697215bc0d48a7b69aa6fb8b",
"favorite_numbers": [19,13,53]
}
O que significa que não há vestígios dos comentários e eles não terão efeitos colaterais estranhos.
Feliz hacking!
|
Considere o uso de YAML. É quase um superconjunto de JSON (praticamente todos os JSON válidos são YAML válidos) e permite comentários.
|
Você não pode. Pelo menos essa é minha experiência com uma rápida olhada em json.org.
JSON tem sua sintaxevisualizado nessa página. Não há nenhuma nota sobre comentários.
|
Os comentários não são um padrão oficial, embora alguns analisadores suportem comentários no estilo C ++. Um que eu uso é o JsonCpp. Nos exemplos, há este:
// Opções de configuração
{
// Codificação padrão para texto
"codificação": "UTF-8",
// Plug-ins carregados na inicialização
"plug-ins": [
"Pitão",
"c ++",
"rubi"
],
// Tab indent size
"indentação": {"comprimento": 3, "use_space": verdadeiro}
}
jsonlint não valida isso. Portanto, os comentários são uma extensão específica do analisador e não um padrão.
Outro analisador é JSON5.
Uma alternativa para JSON TOML.
Outra alternativa é jsonc.
A versão mais recente do nlohmann / json tem suporte opcional para ignorar comentários na análise.
|
Você deve escrever um esquema JSON em vez disso. O esquema JSON é atualmente uma proposta de especificação de rascunho da Internet. Além da documentação, o esquema também pode ser usado para validar seus dados JSON.
Exemplo:
{
"descrição": "Uma pessoa",
"tipo": "objeto",
"propriedades":
{
"nome":
{
"tipo": "string"
},
"era":
{
"tipo": "inteiro",
"máximo": 125
}
}
}
Você pode fornecer documentação usando o atributo de esquema de descrição.
|
Se você estiver usando Jackson como seu analisador JSON, é assim que você o habilita para permitir comentários:
Mapeador de ObjectMapper = new ObjectMapper (). Configure (Feature.ALLOW_COMMENTS, true);
Então você pode ter comentários como este:
{
chave: "valor" // Comentário
}
E você também pode ter comentários começando com # por configuração:
mapper.configure (Feature.ALLOW_YAML_COMMENTS, true);
Mas em geral (como respondido antes) a especificação não permite comentários.
|
Aqui está o que encontrei na documentação do Google Firebase que permite colocar comentários em JSON:
{
"//": "Alguns navegadores usarão isso para habilitar notificações push.",
"//": "É igual para todos os projetos, este não é o ID do remetente do seu projeto",
"gcm_sender_id": "1234567890"
}
|
NÃO. JSON costumava apoiar comentários, mas eles foram abusados e removidos do padrão.
Do criador do JSON:
Removi os comentários do JSON porque vi que as pessoas os estavam usando para manter as diretivas de análise, uma prática que teria destruído a interoperabilidade. Sei que a falta de comentários deixa algumas pessoas tristes, mas não deveria. - Douglas Crockford, 2012
O site oficial do JSON está em JSON.org. JSON é definido como um padrão pela ECMA International. Sempre há um processo de petição para revisão dos padrões. É improvável que anotações sejam adicionadas ao padrão JSON por vários motivos.
JSON por design é uma alternativa de engenharia reversa (análise humana) fácil para XML. É simplificado ao ponto de as anotações serem desnecessárias. Não é nem mesmo uma linguagem de marcação. O objetivo é estabilidade e interoperabilidade.
Qualquer pessoa que entenda o relacionamento "tem um" da orientação a objetos pode entender qualquer estrutura JSON - esse é o ponto principal. É apenas um gráfico acíclico direcionado (DAG) com tags de nós (pares chave / valor), que é uma estrutura de dados quase universal.
Essa única anotação necessária pode ser "// Estas são tags DAG". Os nomes das chaves podem ser tão informativos quanto necessário, permitindo aridade semântica arbitrária.
Qualquer plataforma pode analisar JSON com apenas algumas linhas de código. XML requer bibliotecas OO complexas que não são viáveis em muitas plataformas.
As anotações apenas tornariam o JSON menos interoperável. Simplesmente não há mais nada a adicionar, a menos que você realmente precise de uma linguagem de marcação (XML) e não se importe se seus dados persistentes forem facilmente analisados.
MAS, como o criador do JSON também observou, sempre houve suporte de pipeline JS para comentários:
Vá em frente e insira todos os comentários que desejar.
Em seguida, canalize-o por meio de JSMin antes de entregá-lo ao analisador JSON. - Douglas Crockford, 2012
|
Se o seu arquivo de texto, que é uma string JSON, for lido por algum programa, quão difícil seria remover os comentários de estilo C ou C ++ antes de usá-lo?
Resposta: Seria um forro único. Se você fizer isso, os arquivos JSON podem ser usados como arquivos de configuração.
|
Se você estiver usando a biblioteca Newtonsoft.Json com ASP.NET para ler / desserializar, pode usar comentários no conteúdo JSON:
// "nome": "string"
//"eu não fiz
ou
/* Isto é um
exemplo de comentário * /
PS: comentários de linha única são suportados apenas com 6+ versões de Newtonsoft Json.
Observação adicional para pessoas que não conseguem pensar fora da caixa: Eu uso o formato JSON para configurações básicas em um aplicativo ASP.NET que criei. Eu li o arquivo, converti-o no objeto de configurações com a biblioteca Newtonsoft e utilizei-o quando necessário.
Eu prefiro escrever comentários sobre cada configuração individual no próprio arquivo JSON e realmente não me importo com a integridade do formato JSON, contanto que a biblioteca que uso esteja OK para ele.
Acho que esta é uma maneira 'mais fácil de usar / entender' do que criar um arquivo separado 'settings.README' e explicar as configurações nele.
Se você tiver problemas com este tipo de uso; desculpe, o gênio está fora da lâmpada. As pessoas encontrariam outros usos paraFormato JSON e não há nada que você possa fazer a respeito.
|
A ideia por trás do JSON é fornecer troca simples de dados entre aplicativos. Eles são normalmente baseados na web e a linguagem é JavaScript.
Na verdade, não permite comentários como tal, no entanto, passar um comentário como um dos pares nome / valor nos dados certamente funcionaria, embora esses dados precisassem obviamente ser ignorados ou tratados especificamente pelo código de análise.
Dito isso, não é intenção que o arquivo JSON contenha comentários no sentido tradicional. Devem ser apenas os dados.
Dê uma olhada no site JSON para mais detalhes.
|
JSON não suporta comentários nativamente, mas você pode fazer seu próprio decodificador ou pelo menos pré-processador para remover comentários, isso é perfeitamente normal (contanto que você apenas ignore os comentários e não os use para orientar como seu aplicativo deve processar os dados JSON )
JSON não tem comentários. Um codificador JSON NÃO DEVE emitir comentários.
Um decodificador JSON PODE aceitar e ignorar comentários.
Os comentários nunca devem ser usados para transmitir algo significativo. Isso é
para que serve JSON.
Cf: Douglas Crockford, autor de JSON spec.
|
Acabei de encontrar isso para arquivos de configuração. Não quero usar XML (detalhado, gráfico, feio, difícil de ler) ou formato "ini" (sem hierarquia, sem padrão real etc.) ou formato Java "Propriedades" (como .ini).
JSON pode fazer tudo o que podem, mas é muito menos prolixo e mais legível por humanos - e os analisadores são fáceis e onipresentes em muitas linguagens. É apenas uma árvore de dados. Mas os comentários fora da banda geralmente são uma necessidade para documentar configurações "padrão" e similares. As configurações nunca devem ser "documentos completos", mas árvores de dados salvos que podem ser lidos por humanos quando necessário.
Eu acho que alguém poderia usar "#": "comentário", para JSON "válido".
|
Depende da sua biblioteca JSON. Json.NET suporta comentários no estilo JavaScript, / * commment * /.
Veja outra pergunta do Stack Overflow.
|
JSON faz muito sentido para arquivos de configuração e outros usos locais porque é onipresente e porque é muito mais simples do que XML.
Se as pessoas tiverem fortes motivos para não ter comentários em JSON ao comunicar dados (válidos ou não), o JSON pode ser dividido em dois:
JSON-COM: JSON on the wire ou regras que se aplicam ao comunicar dados JSON.
JSON-DOC: documento JSON ou JSON em arquivos ou localmente. Regras que definem um documento JSON válido.
JSON-DOC permitirá comentários, e outras pequenas diferenças podem existir, como manipulação de espaços em branco. Os analisadores podem converter facilmente de uma especificação para outra.
Com relação ao comentário feito por Douglas Crockford sobre essas questões (referenciado por @Artur Czajka)
Suponha que você esteja usando JSON para manter os arquivos de configuração que gostaria de anotar. Vá em frente e insira todos os comentários que desejar. Em seguida, canalize-o por meio de JSMin antes de entregá-lo ao analisador JSON.
Estamos falando sobre um problema de arquivo de configuração genérico (linguagem cruzada / plataforma), e ele está respondendo com um utilitário específico para JS!
Claro, um minify específico de JSON pode ser implementado em qualquer idioma,
mas padronize isso para que se torne onipresente em analisadores em todas as linguagens e plataformas para que as pessoas parem de perder tempo sem o recurso porque têm bons casos de uso para ele, procurando o problema em fóruns online e fazendo com que as pessoas lhes digam que é uma má ideia ou sugerindo que é fácil implementar a remoção de comentários de arquivos de texto.
O outro problema é a interoperabilidade. Suponha que você tenha uma biblioteca ou API ou qualquer tipo de subsistema que tenha alguns arquivos de configuração ou dados associados a ela. E este subsistema é
para ser acessado em diferentes idiomas. Então você vai dizer às pessoas: a propósito
não se esqueça de remover os comentários dos arquivos JSON antes de passá-los para o analisador!
|
Se você usar JSON5, pode incluir comentários.
JSON5 é uma extensão proposta para JSON que visa tornar mais fácil para humanos escrever e manter à mão. Ele faz isso adicionando alguns recursos de sintaxe mínimos diretamente do ECMAScript 5.
|
O kit de ferramentas Dojo Toolkit JavaScript (pelo menos a partir da versão 1.4) permite incluir comentários em seu JSON. Os comentários podem ter o formato / * * /. O Dojo Toolkit consome o JSON por meio da chamada dojo.xhrGet ().
Outros kits de ferramentas JavaScript podem funcionar de forma semelhante.
Isso pode ser útil ao experimentar estruturas de dados alternativas (ou mesmo listas de dados) antes de escolher uma opção final.
|
JSON não é um protocolo com frames. É um formato livre de linguagem. Portanto, o formato de um comentário não está definido para JSON.
Como muitas pessoas sugeriram, existem alguns truques, por exemplo, chaves duplicadas ou um comentário de chave específico que você pode usar. Você decide.
|
Você pode ter comentários em JSONP, mas não em JSON puro. Acabei de passar uma hora tentando fazer meu programa funcionar com este exemplo de Highcharts: http://www.highcharts.com/samples/data/jsonp.php?filename=aapl-c.json&callback=?
Se você seguir o link, verá
? (/ * AAPLdados históricos do OHLC da API do Google Finance * /
[
/ * Maio de 2006 * /
[1147651200000,67,79],
[1147737600000,64,98],
...
[1368057600000,456,77],
[1368144000000.452,97]
]);
Como eu tinha um arquivo semelhante em minha pasta local, não havia problemas com a política de mesma origem, então decidi usar JSON puro ... e, claro, $ .getJSON estava falhando silenciosamente por causa dos comentários.
Acabei de enviar uma solicitação HTTP manual para o endereço acima e percebi que o tipo de conteúdo era text / javascript, pois, bem, JSONP retorna JavaScript puro. Neste caso, comentários são permitidos. Mas meu aplicativo retornou o tipo de conteúdo application / json, então tive que remover os comentários.
|
Esta é uma pergunta do tipo "você pode". E aqui está uma resposta "sim".
Não, você não deve usar membros de objeto duplicados para inserir dados do canal lateral em uma codificação JSON. (Consulte "Os nomes em um objeto DEVEM ser únicos" no RFC).
E sim, você pode inserir comentários em torno do JSON, que você pode analisar.
Mas se você deseja uma maneira de inserir e extrair dados arbitrários do canal lateral para um JSON válido, aqui está uma resposta. Aproveitamos a representação não exclusiva de dados em uma codificação JSON. Isso é permitido * na seção dois da RFC em "espaços em branco são permitidos antes ou depois de qualquer um dos seis caracteres estruturais".
* O RFC apenas afirma "espaços em branco são permitidos antes ou depois de qualquer um dos seis caracteres estruturais", sem mencionar explicitamente strings, números, "falso", "verdadeiro" e "nulo". Esta omissão é ignorada em TODAS as implementações.
Primeiro, canonize seu JSON reduzindo-o:
$ jsonMin = json_encode (json_decode ($ json));
Em seguida, codifique seu comentário em binário:
$ hex = desempacotar ('H *', $ comentário);
$ commentBinary = base_convert ($ hex [1], 16, 2);
Então roube seu binário:
$ steg = str_replace ('0', '', $ commentBinary);
$ steg = str_replace ('1', "\ t", $ steg);
Aqui está o seu resultado:
$ jsonWithComment = $ steg. $ jsonMin;
|
Aviso: Isso é bobo
Na verdade, existe uma maneira de adicionar comentários e permanecer dentro das especificações (nenhum analisador adicional necessário). Não resultará em comentários legíveis por humanos sem qualquer tipo de análise.
Você pode abusar do seguinte:
Espaços em branco insignificantes são permitidos antes ou depois de qualquer token.
O espaço em branco é qualquer sequência de um ou mais dos seguintes códigos
pontos: tabulação de caracteres (U + 0009), avanço de linha (U + 000A), carro
retorno (U + 000D) e espaço (U + 0020).
De uma forma hacky, você pode abusar disso para adicionar um comentário. Por exemplo: comece e termine seu comentário com uma guia. Codifique o comentário em base3 e use os outros caracteres de espaço em branco para representá-los. Por exemplo.
010212 010202 011000 011000 011010 001012 010122 010121 011021 010202 001012 011022 010212 011020 010202 010202
(Olá, base três em ASCII) Mas em vez de 0, use o espaço, para 1 use a alimentação de linha e para 2 use o retorno de carro.
Isso apenas deixará você com muitos espaços em branco ilegíveis (a menos que você faça um plugin IDE para codificá-lo / decodificá-lo na hora).
Eu nunca tentei isso, por razões óbvias e nem você deveria.
|
JSON não permite comentários, por si só. O raciocínio é totalmente idiota, porque você pode usar o próprio JSON para criar comentários, o que elimina o raciocínio totalmente e carrega o espaço de dados do analisador sem nenhum motivo para exatamente o mesmo resultado e problemas potenciais, como são: um JSON arquivo com comentários.
Se você tentar colocar comentários (usando // ou / * * / ou # por exemplo), alguns analisadores falharão porque isso não é estritamente
dentro da especificação JSON. Portanto, você nunca deve fazer isso.
Aqui, por exemplo, onde meu sistema de manipulação de imagens salvou notações de imagens e algumas informações básicas formatadas (comentários) relacionadas a elas (na parte inferior):
{
"Notações": [
{
"anchorX": 333,
"anchorY": 265,
"areaMode": "Elipse",
"extensionX": 356,
"extensionY": 294,
"opacidade": 0,5,
"text": "Área elíptica no topo",
"textX": 333,
"textY": 265,
"title": "Notação 1"
},
{
"anchorX": 87,
"anchorY": 385,
"areaMode": "Rectangle",
"extensionX": 109,
"extensãoY": 412,
"opacidade": 0,5,
"text": "Rect area \ non bottom",
"textX": 98,
"textY": 385,
"title": "Notação 2"
},
{
"anchorX": 69,
"anchorY": 104,
"areaMode": "Polygon",
"extensionX": 102,
"extensionY": 136,
"opacidade": 0,5,
"pointList": [
{
"i": 0,
"x": 83,
"y": 104
},
{
"i": 1,
"x": 69,
"y": 136
},
{
"I": 2,
"x": 102,
"y": 132
},
{
"i": 3,
"x": 83,
"y": 104
}
],
"text": "Polígono simples",
"textX": 85,
"textY": 104,
"title": "Notação 3"
}
],
"imageXW": 512,
"imageYW": 512,
"imageName": "lena_std.ato",
"tinyDocs": {
"C01": "dados de notação imagem JSON:",
"c02": "-------------------------",
"C03": "",
"c04": "Estes dados contêm notações de imagem e área relacionada",
"c05": "informações de seleção que fornecem um meio para um",
"c06": "galeria de imagens para exibir notações com elíptico,",
"c07": "indicações de área retangular, poligonal ou à mão livre",
"c08": "sobre uma imagem exibida a um visitante da galeria.",
"C09": "",
"c10": "As posições X e Y estão todas na imagemespaço. A imagem",
"c11": "resolução é fornecida como imageXW e imageYW, que",
"c12": "você usa para dimensionar as áreas de notação para o seu devido",
"c13": "locais e tamanhos para a exibição da imagem,",
"c14": "independentemente da escala.",
"c15": "",
"c16": "Para Elipses, âncora é o centro da elipse,",
"c17": "e as extensões são os raios X e Y respectivamente.",
"c18": "",
"c19": "Para retângulos, a âncora é o canto superior esquerdo e o",
"c20": "as extensões estão na parte inferior direita.",
"c21": "",
"c22": "Para os modos de área à mão livre e polígono, a pointList",
"c23": "contém uma série de pontos numerados XY. Se a área",
"c24": "está fechado, o último ponto será igual ao",
"c25": "primeiro, então você só precisa se preocupar com o desenho",
"c26": "linhas entre os pontos da lista. Âncora e extensão",
"c27": "são definidos na parte superior esquerda e inferior direita do indicado",
"c28": "região, e pode ser usado como uma retangular simplista",
"c29": "detectar a posição do mouse sobre esses tipos",
"c30": "de áreas.",
"c31": "",
"c32": "As posições textx e texty fornecem posicionamento básico",
"c33": "informações para ajudá-lo a localizar as informações de texto",
"c34": "em um local razoável associado à área",
"c35": "indicação.",
"c36": "",
"c37": "Opacidade é um valor entre 0 e 1, onde 0,5 representa",
"c38": "um pano de fundo 50% opaco e 1.0 representa um totalmente opaco",
"c39": "pano de fundo. A recomendação é que as regiões sejam desenhadas",
"c40": "somente se o usuário passar o ponteiro do mouse sobre a imagem,",
"c41": "e que o texto associado às regiões seja desenhado",
"c42": "somente se o usuário passar o ponteiro do mouse sobre o indicado",
"c43": "região".
}
}
|
Estamos usando strip-json-comments para nosso projeto. Suporta algo como:
/ *
* Descrição
* /
{
// arco-íris
"unicórnio": / * ❤ * / "bolo"
}
Simplesmente npm install --save strip-json-comments para instalar e usar como:
var strip_json_comments = require ('strip-json-comments')
var json = '{/ * arco-íris * / "unicórnio": "bolo"}';
JSON.parse (strip_json_comments (json));
// => {unicórnio: 'bolo'}
|
No meu caso, preciso usar comentários para fins de depuração antes da saída da estrutura JSON. Portanto, decidi usar informações de depuração no cabeçalho HTTP, para evitar quebrar o cliente:
header ("My-Json-Comment: Sim, eu sei que é uma solução alternativa ;-)");
|
Para cortar um item JSON em partes, adiciono linhas de "comentário fictício":
{
"#############################" : "Parte 1",
"dados1": "valor1",
"dados2": "valor2",
"#############################" : "Parte 2",
"dados4": "valor3",
"dados3": "valor4"
}
|
1
2
Próximo
Questão altamente ativa. Ganhe 10 reputação para responder a esta pergunta. O requisito de reputação ajuda a proteger essa pergunta contra spam e atividades sem resposta.
Não é a resposta que você está procurando? Navegue por outras questões com os comentários json marcados ou faça sua própria pergunta.